//--
app.controller('fornecedorController', 
		['$scope', 'fornecedorService', 'ramoAtividadeService', 'utilsService', 'dialogs',
		 function($scope, fornecedorService, ramoAtividadeService, utilsService, dialogs) {
	
	$scope.list = true;
	$scope.isCreate = true;
	$scope.ramosAtividade = { };
	
	/** CREATE **/
	$scope.create = function(unidade) {
		
		$scope.unidade = null;
		$scope.list = false;
		$scope.isCreate = true;
		
		$scope.retrieveRamoAtividade('');
		$scope.estados = utilsService.estados();
		
	};
	
	/** RETRIEVE **/
	$scope.retrieveFilter = function() {

		if($scope.filtro == undefined) {
			return;
		}
		
		if($scope.filtro.fantasia == undefined) {
			$scope.filtro.fantasia = '';
		}
		if($scope.filtro.razaoSocial == undefined) {
			$scope.filtro.razaoSocial = '';
		}
		
		var retrieveFilter = fornecedorService.retrieveFilter($scope.filtro.fantasia, $scope.filtro.razaoSocial);
		retrieveFilter.then(function(resposta) {
			
			if(resposta != null) {
				if(resposta.data.status) {
					$scope.lista = resposta.data.object;
				} else {
					showAlertMessage(resposta.data.message);					
				}
			} else {
				showErrorMessage('Problemas de comunicação...');					
			}
		});
	};

	$scope.retrieveRamoAtividade = function(descricao) {
		
		var ramosAtividadeFilter = ramoAtividadeService.retrieveFilter(descricao);
		ramosAtividadeFilter.then(function(resposta) {
			
			if(resposta != null) {
				if(resposta.data.status) {
					$scope.ramosAtividade = resposta.data.object;
				} else {
					showAlertMessage(resposta.data.message);					
				}
			} else {
				showErrorMessage('Problemas de comunicação...');					
			}
		});
	};
	
	/** UPDATE **/
	$scope.update = function(unidade) {
		
		$scope.ramosAtividade = $scope.retrieveRamoAtividade('');
		$scope.estados = utilsService.estados();

		$scope.unidade = unidade;
		$scope.list = false;
		$scope.isCreate = false;
	};

	/** DELETE **/
	$scope.dlete = function(unidade) {

		var dlg = dialogs.confirm('Confirma Exclusão?','Fornecedor: ' + unidade.fantasia);
        dlg.result.then(function(btn){

    		var deleteBack = fornecedorService.remove(unidade);
    		deleteBack.then(function(resposta) {
    			if(resposta != null) {
    				if(resposta.data.status) {
						var index = $scope.lista.indexOf(unidade);
						$scope.lista.splice(index, 1);
						showSuccessMessage(resposta.data.message);
    				} else {
    					showErrorMessage('Problemas de comunicação...');
    				}
    			}
    		});
        	
        },function(btn){
          console.log('Shame on you for not thinking this is awesome!');
        });
        
	};
	
	$scope.save = function(isValid) {
		
		if(!isValid) {
			return;
		}
		
		var saveBack = fornecedorService.save($scope.unidade);
		saveBack.then(function(resposta) {
			if(resposta != null) {
				if(resposta.data.status) {
					$scope.unidade = resposta.data.object;
					if($scope.isCreate) {
						if($scope.lista == null) {
							$scope.lista = new Array();
						}
						$scope.lista.push($scope.unidade);
					}
					showSuccessMessage(resposta.data.message);
					$scope.list = true;
				} else {
					showErrorMessage(resposta.data.message);
				}
			} else {
				showErrorMessage('Problemas de comunicação...');
			}
		});
		
	};

	$scope.cancel = function(unidade) {
		$scope.list = true;
	};
	
	$scope.documentoChange = function() {
		
		if($scope.unidade == undefined) {
			$scope.documentoLabel = '';
			$scope.documentoMask = '';
		} else if($scope.unidade.tipo == 'JURIDICA') {
			$scope.documentoLabel = 'C.N.P.J.:';
			$scope.documentoLabelR = 'I.E.:';
			$scope.documentoMask = '00.000.000/0000-00';
			$scope.documentoMaskR = 'I.E.';
	        $("#inputCnpjCpf").mask("00.000.000/0000-00");
		} else if($scope.unidade.tipo == 'FISICA') {
			$scope.documentoLabel = 'C.P.F.:';
			$scope.documentoLabelR = 'R.G.:';
			$scope.documentoMask = '000.000.000-00';
			$scope.documentoMaskR = 'R.G.';
	        $("#inputCnpjCpf").mask("000.000.000-00");
		} else {
			$scope.documentoLabel = '';
			$scope.documentoLabelR = '';
			$scope.documentoMask = '';
			$scope.documentoMaskR = '';
	        $("#inputCnpjCpf").mask("");
		}
	};
		
}]);
